#ifndef INPUTMANAGER_H_
#define INPUTMANAGER_H_

#include <Windows.h>
#include "../SGD wrappers/CSGD_DirectInput.h"

enum EInputType { MOUSEKEYBOARD, ARCADE };


class InputManager
{
	float prevCursorPosX;
	float prevCursorPosY;
	float currCursorPosX;
	float currCursorPosY;

	float currCursorVelX;
	float currCursorVelY;

	int inputType;
	CSGD_DirectInput* DInput;
	HWND hWnd;
	HINSTANCE hinstance;

	InputManager() {}
	~InputManager() {}
	InputManager(const InputManager&){}
	InputManager& operator=(const InputManager&){}

public:

	static InputManager* GetInstance();
	void Init(HWND hwnd, HINSTANCE hinstance);
	void Shutdown(void);

	void Update(float fElapsedTime);

	bool Action();
	bool Upgrade();

	bool MoveUp();
	bool MoveDown();
	bool MoveLeft();
	bool MoveRight();
	
	bool EquiptPinch();
	bool EquiptGauntlet();
	bool EquiptPoison();
	bool EquiptBoulder();

	bool Enter();
	bool Escape();
	bool Pause();

	POINT GetCurrentVelocity();

	POINT CursorPosition();
	void SetCursorPosition(int x, int y);
	
	int GetInputType(void)	{ return inputType; }
	
	void ChangeInputType(EInputType type);
};


#endif



